מדריך מקיף ל-RSA [חלק א']
** שימו לב: חלק זה כולל רק "תיאוריה" ואת הרעיון שמאוחרי השיטה אין פה שום דבר מעשי או מתמטיקה...אז מי שכבר מבין את הרעיון
יכול לא לקרוא את המדריך ולחכות לחלק הבא שיכלול את העבודה הרצינית....
טוב בגיליון הקודם ראיתי שהיה הרבה חומר על הצפנה שנכנסתי לפרומים ראיתי גם שהרבה אנשים עניין
אותם ואהבו את כל הנושא וכמובן רוצים ללמוד עוד.
כמו שאמרתי בפורמים כבר אני אישית בגיליון הקודם חשבתי שיהיה חומר קצת יותר מתקדם אבל לא משנה
הם עשו בשבילי חצי עבודה שזה הקדמה כוללת על כל הנושא הרחב הזה.
אז מה יהיה לנו פה:
1. הקדמה - הצפנות סימטריות ואסימטריות
2. פתיחה - RSA, למה ואיך?
3. מושגים בסיסים
הקדמה - הצפנות סימטריות
טוב בגיליון הקודם היה חומר די רב על הצפנה סימטרית וקצת הסבר על הצפנה אסימטרית אני ינסה
לתמצת את זה שמי שלא קרה גם את הגיליון הראשון יוכל ללמוד קצת
אז ככה נתחיל עם הצפנה סימטרית, הצפנה סימטרית זו בעצם הצפנה כמו שהשם שלה אומרת סימטרית מה זה אומר זה אומר
שהמפתח שאיתו מצפינים את הטקסט הנבחר גם בעזרתו יהיה אפשר לאחר מכן לפתוח אותו בחזרה
מה שדורש שמירה סודית ביותר על מפתח ההצפנה שזהו חיסרון חמוד בהצפנות מסוג אלו.
עוד חסרון משמעותי בהצפנות מסוגים אלו זהו תאימות של המצפין והמענח הלו הם המוען והנמען על מפתח
אחרת לא יהיה באמצעות של הנמען לפתוח את המסר המוצפן...
אלו הם שני החסרונות העיקריות של הצפנות מסוג אלה יש גם את החסרון של מפתחים מרובים מדי ועל מנת
שנוכל לבסס על זה תקשורת שלמה ידרשמו המון מאוד מפתחות וזה ייקח הרבה זמן [התקשורת תיהיה איטית....]
עד כאן לגבי הצפנות סימטריות.
לגבי הצפנות אסימטריות אלו הם הצפנות שבניגוד להצפנות סימטריות המפתח שאיתו הצפינו לא מפענח את המסר המוצפן
כלומר יש שתי מפתחות שאחד מצפין ואחד פותח...
המפתח אשר מצפינים איתו זהו מפתח ציבורי כלומר כולם יכולים לראות אותו ולהשתמש בו להצפנת מסרים
המפתח השני זהו מפתח פרטי אשר ייחודי לכל משתמש ואיתו בעצם המשתמש מפענח את המסרים שהצפינו במפתח הפרטי.
[מובן שהמפתח הפרטי והמפתח הציבורי מותאמים זה לזה ככה שאחד פותח ואחד מצפין.]
בוא ניתן דוגמא:
לי יש שני מפתחות אחד פרטי ואחד ציבורי שהוא 1234
משהו רוצה לשלוח לי את המסר "מה המצב" אז מה שהוא עושה הוא לוקח את המפתח הציבורי הלו הוא 1234
מצפין איתו את המסר שהוא רוצה [באלגוריתם מסוים, במקרה שלנו RSA...] ושולח לי את המסר המוצפן
שימו לב שכולם יכולים לראות גם את המסר המוצפן וגם את המפתח שהצפינו איתו אבל עדין לא יכולים לפענח,
את זה אני יסביר במשל שלקוח מאיפה שהוא...
עכשיו אני מקבל את המסר אני מפענח אותו בעזרת מפתח פרטי שמותאם מראש למפתח הציבורי [בהמשך ידובר על דרך איך מוצאים זוג כזה של מפתחות]
מפענח את המסר ויש לי את המסר שהוא רצה לשלוח לי..
כלומר שימו לב ליתרונות של השיטה:
1. כל המהלך הזה נמצא בפרוטוקול או התקשרות לא יודע איך שתקראו לזה לא סודי בכלל ולא מאובטח...
2. אין את הדבר הזה של שמירה על הפתח [חוץ מהמפתח הפרטי...] כולם יכולים לראות את המפתח אין בעיה...
3. לא צריך להסכים על מפתחות מראש כל אחד מפרסם מפתח ציבורי ויש לו אצלו את המפתח הפרטי שמותאם לו...
ועכשיו לכל אלה שעדין מבולבלים [אני מקווה שלא...] הנה משל שידגים יותר טוב [לא חובה לקרוא למי שכבר הבין..]:
יש לנו מסילת רכבת מעגלית ענקית [אלפי קילומטרים] לאורך המסילה בכל מטר יש תיבה..
בני רוצה לשלוח לשי [אני...חחח] מסר הוא הולך לתיבה אקראית מניח שם את המסר ומאותו מקום עולה לרכבת[הרכבת נוסעת
רק קדימה...] ונוסעת לפי המפתח הציבורי של שי שלוקח אותו לנקודה נוספת על המסילה..
שי רואה איפה ירד בני הוא עולה משם לרכבת הבאה ונוסע לפי המפתח שלו שמוביל אותו לנקודות ההתחלה של בני מכיוון
ששני המפתחות מתואמים מראש כך שהם משלימים סיבוב שלם.
שי קורא את המסר בהצלחה.
עכשיו בוא נגיד שיש לנו פה צד שלישי: משה שרוצה מאוד לקרוא את המסר אבל הוא לא יכול בוא נסביר למה..
הוא לא יודע איפה בני עלה לרכבת..הוא יודע רק איפה ירד...וזה לא עוזר לו למה הרכבת שלנו יכולה לנסוע רק קדימה ולא אחורה
ככה שהוא לא יכול לחזור על עקבותיו לפי המפתח הצבורי והוא לא יודע את אורך המסילה ככה שהוא
לא יכול לחשב לפי המפתח הציבורי את הדרך שתוביל אותו לנקודות ההתחלה של בני...
יוצא מזה שמשה לא יכול לקרוא את המסר שבני שלח לשי.
זהו זה סוף המשל אני מקווה שהבנתם את הרעיון...כי עכשיו מתחיל הדבר האמיתי...[ואם זה נראה לכם ארוך חכו שנתחיל באמת...חחח]
RSA - למה ואיך..?
טוב לפני שאני יתחיל לכתוב קצת מתמטיקה ועל דרך פעולת השיטה לא יזיק לכם לדעת קצת היסטוריה - איך הומצאה השיטה על ידי מי וכו'...
RSA נכון להיום הוא האלגוריתם המקובל ביותר של ההצפנות האסימטריות.(תתפלאו לשמוע אבל לאלגוריתם הזה יש צד ישראלי חשוב מאוד...!)
שמו מורכב משלושת האותיות הראשונות של שמות המשפחה של ממציאו:
R.L. Rivest
A. Shamir
L.M. Adelman
אדי שמיר זהו בעצם הצד הישראלי בכל העניין הוא תרם רבות להצפנה האסימרטית בכלל ול-RSA בפרט.
טוב את האמת יכולתי לכתוב את החלק הזה על כמה דפים...חחח...אבל בדוגרי את המסר העברתי..חחח..יש צד ישראלי בכל הדבר הגאוני הזה!
עכשיו רק נסביר ממש את העקרון הפשוט ביותר הבסיס...בתקציר:
יש לכל בן אדם מפתח ציבורי ומפתח פרטי אשר מתואמים מראש ככה שאחד מצפין ואחד מפענח..אבל לא להפך...!וזה חשוב מאוד...
כל משתמש מפרסם את המפתח הציבורי שלו בערוץ לא סודי ובכלל לא מאובטח, מי שרוצה לשלוח לו הודעה פשוט מצפין את המסר
במפתח הציבורי, מעביר לו את ההודעה המוצפנת בערוץ פתוח לכולם שכולם יוכלו לראות מה המסר המוצפן...אז הוא מקבל את המסר המוצפן מפענח
עם המפתח הפרטי שהוא סודי וידוע רק לו והופ יש לנו תקשורת מאובטחת...
זה היה החלק התיאוריטי שבעניין בהמשך תוכלו לראות את המתמטיקה שמאחורי מציאת המפתחות האלה...[מפתחות גדולים מאוד...!]
מושגים בסיסים
** מפתח - המפתח זהו בעצם הערך של הפעולה שנעשת בהצפנה , כלומר הוא קובע את משך\אורך הפעולה, לדוגמא:
שיטת ההצפנה "הזזה" [קיסר] אנו מזיזים כל אות באות שאחריה בהתאם למפתח:
נתנו לנו את הביטוי "IKP" ואמו לנו להצפין באלגוריתם הזה, אבל לא אמרו לנו כמה להזיז ולכן לא נוכל לעשות כלום...
זהו בעצם תפקיד המפתח, במקרה הזה הוא קובע כמה "להזיז" את האותיות קדימה...
** אלגוריתם (ההצפנה) - זהו בעצם הסוג \השיטה בה אנו נשתמש להצפין את המסר בעזרת המפתח, הוא זה ששולט וקובע
על הפעולה שנעשית עם המפתח.
** מפתח פרטי - זהו המפתח אשר נמצא אך ורק אצל הנמען [זה שאמור לקבל את המסר...], מפתח זה הוא ייחודי לכל משתמש
והוא משמש לפיענוח מסרים אשר הוצפנו במפתח הציבורי.
מפתח זה חייב להישמר בסוד על מנת לשמור על אבטחת הערוץ!
** מפתח ציבורי - זהו המפתח שמפורסם בגלוי ולכולם אבל כולם יש גישה אליו...כל מי שרוצה לשלוח מסר לבעל המפתח
פשוט מצפין את המסר שלו בעזרת המפתח, שולח לאותו משתמש ואז והמשתמש מפענח בעזרת המפתח הפרטי שלו.
טוב חלק א' נגמר החלק הבא יהיה כבר יותר מעניין אני מבטיח עד עכשיו רק תאוריה חלק הבא הרבה מתמטיקה....אז תכינו את הראש :-)
................................
....:: שלכם תמיד SBD ::....